package it.koutifaris.travianmap.db;

import it.koutifaris.travianmap.model.Alliance;
import it.koutifaris.travianmap.model.Player;
import it.koutifaris.travianmap.model.Village;

import java.util.Date;

public interface DomainUpdaterFactory {

	public DomainUpdaterDAO createDomainUpdaterDAO(int revision);

	public RevisionDAO createRevisionDAO();

	public interface RevisionDAO {

		public Integer retreiveRevision(Date date);

		public int createRevision(Date date);

	}

	public interface InsertDAO {

		public void insert(Village village);

		public void insert(Player player);

		public void insert(Alliance alliance);
	}

	public interface UpdateDAO {

		public void update(Village village);

		public void update(Player player);

		public void update(Alliance alliance);
	}

	public interface DeleteDAO {

		public void delete(Village village);

		public void delete(Player player);

		public void delete(Alliance alliance);
	}

}
